/*
 * cpu.h
 *
 *  Created on: Mar 11, 2013
 *      Author: Aaron Kaufman
 */
#include "ProcessScheduler.h"
#include "data.h"
#ifndef CPU_H_
#define CPU_H_
typedef struct cpu{
	ProcessScheduler process_scheduler;
	Process* current_process;
	int clock_interrupt;
	int keyboard_interrupt;
} CPU;

int run(CPU* cpu);
void runCPU(ScheduleType type, CPU* cpu);
void doClockInterrupt(CPU* cpu);
void createCPU(CPU* cpu);
void addProcessToCPUProcessList(int (* runProcess)(tdata_t *data), int priority, CPU* cpu, sharedMemory_t* mem, tdata_t* data);

void keyboardInterrupt(CPU* cpu, char* myvariable);
#endif /* CPU_H_ */
